package com.lg.gc.gcweb.controller;

import com.lg.gc.gcweb.entry.User;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;

/**
 * @author Gang.Li
 * @date 2021/6/9 11:55
 */
@RestController
public class IndexController {

    @GetMapping("/user/process")
    public String processUserData() {
        ArrayList<User> users = queryUsers();

        for (User user : users) {
            // todo doSomething
            System.out.println("user:" + user.toString());

        }
        return "end";
    }

    /**
     * 模拟批量查询用户信息
     *
     * @return
     */
    private ArrayList<User> queryUsers() {
        ArrayList<User> users = new ArrayList<>();
        //for (int i = 0; i < 5000; i++) {
        for (int i = 0; i < 500; i++) {
            // 由于 当前的代码 不符合具体情况，由于user 是一个非常大的类，内部维护了一个 100kb 的字节数组。平常一个普通类不会超过1kb
            // 定位问题代码之后， 修改完后，基本不full gc 了
            users.add(new User(i, "xiaogang"));
        }
        return users;
    }
}
